package cn.gameback.supervisionservices.service;

import cn.gameback.supervisionservices.dto.User.RoleTableDTO;
import cn.gameback.supervisionservices.entity.LeaderCrew;
import cn.gameback.supervisionservices.entity.Role;
import cn.gameback.supervisionservices.util.Result;
import cn.gameback.supervisionservices.vo.RequestVo.UserVo.*;
import cn.gameback.supervisionservices.entity.User;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.service.IService;

import java.util.List;

public interface UserService extends IService<User> {

    Result<User> loginFun(LoginQuery loginQueryRequest);

    Result<User> registerFun(RegisterQuery registerQueryRequest);

    /**
     * 查询指定角色列表
     * @return
     */
    Result<List<RoleTableDTO>> getRoleTable(RoleQuery roleQueryRequest);

    /**
     * 通过用户id 获取用户信息
     * @param id
     * @return
     */
    User getUserById(Integer id);

    /**
     * 获取所有用户
     * @return
     */
    IPage<User> getAllUsers(UserQuery userQueryRequest);
    /**
     * 添加用户
     * @param user
     */
    void saveUser(User user);

    /**
     * 更新用户
     * @param user
     */
    void updateUser(User user);

    /**
     * 根据用户id，修改用户上级
     * @param qurey
     * @return
     */
    Result updateUserLeader(LeaderCrewQuery qurey);
    /**
     * 根据用户id，删除用户
     * @param id
     */
    void deleteUser(Integer id);
}
